# -*- coding: utf-8 -*-
# @Time    : 2022/4/8 16:11
# @Author  : zyw
# @Email   : panda_kings@163.com
# @File    : test.py
from functools import wraps


# (2).被装饰函数的函数名
# def outer(func):
#     def wrapper(*args, **kwargs):
#         print('代码块1')
#         func()
#         print('代码块2')
#     return wrapper
# @outer
# def func1():
#     print('func1执行了')
# func1()
# print('函数名为: {}'.format(func1.__name__))  # wrapper


# 配置方法一
from apscheduler.schedulers.background import BackgroundScheduler
# from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.executors.pool import ThreadPoolExecutor
#
executors = {
    'default': ThreadPoolExecutor(20),
}
# 非阻塞,在后台执行
scheduler = BackgroundScheduler(executors=executors)
# 阻塞的, 任务执行完后不会退出,会一直等待,在前台执行,看到执行效果
# scheduler = BlockingScheduler(executors=executors)

# 配置二
from apscheduler.schedulers.background import BackgroundScheduler

from apscheduler.executors.pool import ProcessPoolExecutor

# 开启5个进程去等待任务, 假如有一个任务, 从5个进程中选择一个去执行任务
# 剩余4个去等待其他任任务
# 假如来的是20个任务, 5个进程全部在工作, 剩下的任务等待执行, 5个进程先执行完的再冲剩余的任务重随机执行任务
# executors = {
#     # 'default': {'type': 'threadpool', 'max_workers': 20},
#     'processpool': ProcessPoolExecutor(max_workers=5)
# }
#
# scheduler = BackgroundScheduler()
# # 使用configure方法进行配置
# scheduler.configure(executors=executors)

# 定义定时任务
def my_job():
    print('我执行啦, 哈哈哈~~~~~~~')
# 向调度器中添加定时任务
scheduler.add_job(my_job, 'date')
# 启动定时任务调度器工作
scheduler.start()